package com.jqh.demo.service;

import com.jqh.demo.entity.AclMenu;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 菜单表 服务类
 * </p>
 *
 * @author jqh
 * @since 2021-05-08
 */
public interface AclMenuService extends IService<AclMenu> {
    /**
     * @return
     * <p>查询所有菜单</p>
     */
    List<AclMenu> getAllMenu();

    /**
     * @param id
     * @return
     * <p>根据id递归删除菜单</p>
     */
    boolean removeMenuAndChildrenById(String id);

    /**
     * @param roleId
     * @param menuIds
     * <p>给角色分配菜单</p>
     */
    void giveRoleMenu(String roleId, String[] menuIds);

    /**
     * @param roleId
     * @return
     * <p>根据角色id获取菜单</p>
     */
    List<AclMenu> getMenuByRoleId(String roleId);

    /**
     * @param userId
     * @return
     * <p>根据用户id查询可操作的菜单</p>
     */
    List<AclMenu> getAllOpeMenuByUserId(String userId);

    /**
     * @return
     * <p>未登录时展示默认菜单</p>
     */
    List<AclMenu> getDefaultMenuList();
}
